﻿(function ($) {
    $.fn.LoadPartialView = function (dataParameters) {
        var $self = this;
        this.hide();

        //Establecemos los valores por defecto
        parameters_default = {
            LoadElementID: "",
            URL: "",
            Parametros: {}
        }
        var options = jQuery.extend(parameters_default, dataParameters);

        //Ocultamos el objeto y mostramos la animacion de carga si se hubiera establecido
        if (options.LoadElementID != "") $('#' + options.LoadElementID).fadeIn(100);

        //Ejecutamos la llamada AJAX para ir a traer la vista parcial
        $.ajax({
            url: options.URL,
            type: 'POST',
            data: options.Parametros,
            success: function (datos, status, xhr) {
                if (status == "error") {
                    $self.append("<p>Ocurrió un error al intentar recuperar el periodo activo del sistema. Por favor intente refrescar la pagina (F5) o póngase en contacto con el administrador del sistema para reportar e intentar solucionar este error.</p>");
                } else {
                    //$self.html(datos);
                    $self.append(datos);
                }

                //Mostramos de nuevo los objetos y ocultamos el control de load
                $('#' + options.LoadElementID).hide();
                $self.fadeIn(150);
            },
            error: function (jqXhr, textStatus, errorThrown) {
                $self.append("<p>Ocurrió un error al intentar recuperar el periodo activo del sistema. Por favor intente refrescar la pagina (F5) o póngase en contacto con el administrador del sistema para reportar e intentar solucionar este error.</p>");
                $('#' + options.LoadElementID).hide();
                $self.fadeIn(150);
            }
        });
    };

})(jQuery);